package com.regulareport.form.mapper;


import com.regulareport.common.core.domain.entity.ReportTask;
import com.regulareport.common.core.domain.model.LoginUser;
import com.regulareport.form.domain.*;
import com.regulareport.form.domain.rep.BackSearchRe;
import com.regulareport.form.domain.rep.ReportFillingQueryRep;
import com.regulareport.form.domain.rep.ReportTaskFillingRep;
import com.regulareport.form.domain.req.BackSearch;
import com.regulareport.form.domain.req.ReportTaskFillingReq;
import org.apache.ibatis.annotations.Param;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.Size;
import java.util.List;

public interface ReportTaskMapper {
    void insertReportTaskBatch(@Param("list") List<ReportTask> reportTasks);

    void deleteByPlanId(ReportTask id);

    List<ReportTaskJoin> selectReportDeptByPlanId(@Param("id") Long planId);

    List<ReportTask> selectDeliveredTaskByPlanId(@Param("id") Long planId);

    void deliveryByPlanID(ReportTask req);

    List<ReportTaskListRep> listReportTask(ReportTaskListReq req);

    void deleteById(ReportTask id);

    ReportTaskRep selectDetail(@Param("id")Long aLong);

    List<ReportTaskListRep> findUserTask(LoginUser loginUser);

    List<ReportTaskFillingRep> listHandleReportTask(ReportTaskFillingReq reportTaskListReq);

    void reportFilling(ReportTaskFillingRep task);

    ReportFillingQueryRep findFilling(ReportTask task);

    List<ReportFillingQueryRep> findFillingBatch(@Param("list") List<ReportTask> reportTasks);

    List<BackSearchRe> findBack(BackSearch backSearch);

    List<BackSearchRe> findBackAll(BackSearch backSearch);

    void updateJson(ReportFillingQueryRep b);

    List<ReportTask> selectReportTaskByTaskIds(@Param("list") String[] taskIds);

    void rollback(@Param("list")List<Long> re, @Param("u") String username);

    List<BackSearchRe> findBackAll(@Param("deptId") Long deptNum, @Param("taskStatus") String code);

    int updateTaskStatusVerify(ReportTask task);

    BackSearchRe findEdit(ReportTask reportTask);

    void updateEditJson(BackSearchRe backSearchRe);

    void reportAdjust(ReportTaskFillingRep task);
}
